home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicInternalFrameUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  11.1 KB  |  367 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Cursor;
  5. import java.awt.Dimension;
  6. import java.awt.IllegalComponentStateException;
  7. import java.awt.LayoutManager;
  8. import java.awt.Rectangle;
  9. import java.awt.event.ComponentListener;
  10. import java.beans.PropertyChangeListener;
  11. import javax.swing.DefaultDesktopManager;
  12. import javax.swing.DesktopManager;
  13. import javax.swing.Icon;
  14. import javax.swing.JComponent;
  15. import javax.swing.JInternalFrame;
  16. import javax.swing.KeyStroke;
  17. import javax.swing.LookAndFeel;
  18. import javax.swing.UIManager;
  19. import javax.swing.event.InternalFrameListener;
  20. import javax.swing.event.MouseInputAdapter;
  21. import javax.swing.event.MouseInputListener;
  22. import javax.swing.plaf.ComponentUI;
  23. import javax.swing.plaf.InternalFrameUI;
  24. import javax.swing.plaf.UIResource;
  25.  
  26. public class BasicInternalFrameUI extends InternalFrameUI {
  27.    protected JInternalFrame frame;
  28.    protected MouseInputAdapter borderListener;
  29.    protected PropertyChangeListener propertyChangeListener;
  30.    protected LayoutManager internalFrameLayout;
  31.    protected ComponentListener componentListener;
  32.    protected MouseInputListener glassPaneDispatcher;
  33.    protected JComponent northPane;
  34.    protected JComponent southPane;
  35.    protected JComponent westPane;
  36.    protected JComponent eastPane;
  37.    protected BasicInternalFrameTitlePane titlePane;
  38.    private static DesktopManager sharedDesktopManager;
  39.    private boolean componentListenerAdded = false;
  40.    private Rectangle parentBounds = null;
  41.    protected KeyStroke openMenuKey;
  42.    private boolean keyBindingRegistered = false;
  43.    private boolean keyBindingActive = false;
  44.    private InternalFrameListener internalFrameListener = null;
  45.  
  46.    public BasicInternalFrameUI(JInternalFrame var1) {
  47.    }
  48.  
  49.    // $FF: synthetic method
  50.    static boolean access$0(BasicInternalFrameUI var0) {
  51.       return var0.componentListenerAdded;
  52.    }
  53.  
  54.    // $FF: synthetic method
  55.    static void access$1(BasicInternalFrameUI var0, boolean var1) {
  56.       var0.componentListenerAdded = var1;
  57.    }
  58.  
  59.    // $FF: synthetic method
  60.    static Rectangle access$2(BasicInternalFrameUI var0) {
  61.       return var0.parentBounds;
  62.    }
  63.  
  64.    // $FF: synthetic method
  65.    static void access$3(BasicInternalFrameUI var0, Rectangle var1) {
  66.       var0.parentBounds = var1;
  67.    }
  68.  
  69.    // $FF: synthetic method
  70.    static InternalFrameListener access$4(BasicInternalFrameUI var0) {
  71.       return var0.internalFrameListener;
  72.    }
  73.  
  74.    protected void activateFrame(JInternalFrame var1) {
  75.       this.getDesktopManager().activateFrame(var1);
  76.    }
  77.  
  78.    protected void closeFrame(JInternalFrame var1) {
  79.       this.getDesktopManager().closeFrame(var1);
  80.    }
  81.  
  82.    protected MouseInputAdapter createBorderListener(JInternalFrame var1) {
  83.       return new BorderListener(this);
  84.    }
  85.  
  86.    protected ComponentListener createComponentListener() {
  87.       return new ComponentHandler(this);
  88.    }
  89.  
  90.    protected DesktopManager createDesktopManager() {
  91.       return new DefaultDesktopManager();
  92.    }
  93.  
  94.    protected JComponent createEastPane(JInternalFrame var1) {
  95.       return null;
  96.    }
  97.  
  98.    protected MouseInputListener createGlassPaneDispatcher() {
  99.       return new GlassPaneDispatcher(this);
  100.    }
  101.  
  102.    protected void createInternalFrameListener() {
  103.       this.internalFrameListener = new BasicInternalFrameListener(this);
  104.    }
  105.  
  106.    protected LayoutManager createLayoutManager() {
  107.       return new InternalFrameLayout(this);
  108.    }
  109.  
  110.    protected JComponent createNorthPane(JInternalFrame var1) {
  111.       this.titlePane = new BasicInternalFrameTitlePane(var1);
  112.       return this.titlePane;
  113.    }
  114.  
  115.    protected PropertyChangeListener createPropertyChangeListener() {
  116.       return new InternalFramePropertyChangeListener(this);
  117.    }
  118.  
  119.    protected JComponent createSouthPane(JInternalFrame var1) {
  120.       return null;
  121.    }
  122.  
  123.    public static ComponentUI createUI(JComponent var0) {
  124.       return new BasicInternalFrameUI((JInternalFrame)var0);
  125.    }
  126.  
  127.    protected JComponent createWestPane(JInternalFrame var1) {
  128.       return null;
  129.    }
  130.  
  131.    protected void deactivateFrame(JInternalFrame var1) {
  132.       this.getDesktopManager().deactivateFrame(var1);
  133.    }
  134.  
  135.    protected void deiconifyFrame(JInternalFrame var1) {
  136.       this.getDesktopManager().deiconifyFrame(var1);
  137.    }
  138.  
  139.    protected void deinstallMouseHandlers(JComponent var1) {
  140.       ((Component)var1).removeMouseListener(this.borderListener);
  141.       ((Component)var1).removeMouseMotionListener(this.borderListener);
  142.    }
  143.  
  144.    protected DesktopManager getDesktopManager() {
  145.       if (this.frame.getDesktopPane() != null && this.frame.getDesktopPane().getDesktopManager() != null) {
  146.          return this.frame.getDesktopPane().getDesktopManager();
  147.       } else {
  148.          if (sharedDesktopManager == null) {
  149.             sharedDesktopManager = this.createDesktopManager();
  150.          }
  151.  
  152.          return sharedDesktopManager;
  153.       }
  154.    }
  155.  
  156.    public JComponent getEastPane() {
  157.       return this.eastPane;
  158.    }
  159.  
  160.    private InternalFrameListener getInternalFrameListener() {
  161.       return this.internalFrameListener;
  162.    }
  163.  
  164.    public Dimension getMaximumSize(JComponent var1) {
  165.       return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);
  166.    }
  167.  
  168.    public Dimension getMinimumSize(JComponent var1) {
  169.       return this.frame == var1 ? this.frame.getLayout().minimumLayoutSize(var1) : new Dimension(0, 0);
  170.    }
  171.  
  172.    public JComponent getNorthPane() {
  173.       return this.northPane;
  174.    }
  175.  
  176.    public Dimension getPreferredSize(JComponent var1) {
  177.       return this.frame == var1 ? this.frame.getLayout().preferredLayoutSize(var1) : new Dimension(100, 100);
  178.    }
  179.  
  180.    public JComponent getSouthPane() {
  181.       return this.southPane;
  182.    }
  183.  
  184.    public JComponent getWestPane() {
  185.       return this.westPane;
  186.    }
  187.  
  188.    protected void iconifyFrame(JInternalFrame var1) {
  189.       this.getDesktopManager().iconifyFrame(var1);
  190.    }
  191.  
  192.    protected void installComponents() {
  193.    }
  194.  
  195.    protected void installDefaults() {
  196.       Icon var1 = this.frame.getFrameIcon();
  197.       if (var1 == null || var1 instanceof UIResource) {
  198.          this.frame.setFrameIcon(UIManager.getIcon("InternalFrame.icon"));
  199.       }
  200.  
  201.       LookAndFeel.installBorder(this.frame, "InternalFrame.border");
  202.    }
  203.  
  204.    protected void installKeyboardActions() {
  205.       if (this.internalFrameListener == null) {
  206.          this.createInternalFrameListener();
  207.       }
  208.  
  209.       this.openMenuKey = KeyStroke.getKeyStroke(32, 2);
  210.       this.frame.addInternalFrameListener(this.internalFrameListener);
  211.    }
  212.  
  213.    protected void installListeners() {
  214.       this.borderListener = this.createBorderListener(this.frame);
  215.       this.propertyChangeListener = this.createPropertyChangeListener();
  216.       this.frame.addPropertyChangeListener(this.propertyChangeListener);
  217.       this.frame.setLayout(this.internalFrameLayout = this.createLayoutManager());
  218.       this.installMouseHandlers(this.frame);
  219.       this.glassPaneDispatcher = this.createGlassPaneDispatcher();
  220.       this.frame.getGlassPane().addMouseListener(this.glassPaneDispatcher);
  221.       this.frame.getGlassPane().addMouseMotionListener(this.glassPaneDispatcher);
  222.       this.componentListener = this.createComponentListener();
  223.    }
  224.  
  225.    protected void installMouseHandlers(JComponent var1) {
  226.       ((Component)var1).addMouseListener(this.borderListener);
  227.       ((Component)var1).addMouseMotionListener(this.borderListener);
  228.    }
  229.  
  230.    public void installUI(JComponent var1) {
  231.       this.frame = (JInternalFrame)var1;
  232.       this.frame.add(this.frame.getRootPane(), "Center");
  233.       this.installDefaults();
  234.       this.installComponents();
  235.       this.installListeners();
  236.       this.installKeyboardActions();
  237.       this.setNorthPane(this.createNorthPane(this.frame));
  238.       this.setSouthPane(this.createSouthPane(this.frame));
  239.       this.setEastPane(this.createEastPane(this.frame));
  240.       this.setWestPane(this.createWestPane(this.frame));
  241.       this.frame.setOpaque(true);
  242.       int var2 = this.getNorthPane().getMinimumSize().height + this.frame.getInsets().top + this.frame.getInsets().bottom;
  243.       this.frame.setMinimumSize(new Dimension(120, var2));
  244.    }
  245.  
  246.    public final boolean isKeyBindingActive() {
  247.       return this.keyBindingActive;
  248.    }
  249.  
  250.    protected final boolean isKeyBindingRegistered() {
  251.       return this.keyBindingRegistered;
  252.    }
  253.  
  254.    protected void maximizeFrame(JInternalFrame var1) {
  255.       this.getDesktopManager().maximizeFrame(var1);
  256.    }
  257.  
  258.    protected void minimizeFrame(JInternalFrame var1) {
  259.       this.getDesktopManager().minimizeFrame(var1);
  260.    }
  261.  
  262.    protected void replacePane(JComponent var1, JComponent var2) {
  263.       if (var1 != null) {
  264.          this.deinstallMouseHandlers(var1);
  265.          this.frame.remove(var1);
  266.       }
  267.  
  268.       if (var2 != null) {
  269.          this.frame.add(var2);
  270.          this.installMouseHandlers(var2);
  271.       }
  272.  
  273.    }
  274.  
  275.    public void setEastPane(JComponent var1) {
  276.       this.eastPane = var1;
  277.    }
  278.  
  279.    protected final void setKeyBindingActive(boolean var1) {
  280.       this.keyBindingActive = var1;
  281.    }
  282.  
  283.    protected final void setKeyBindingRegistered(boolean var1) {
  284.       this.keyBindingRegistered = var1;
  285.    }
  286.  
  287.    public void setNorthPane(JComponent var1) {
  288.       this.replacePane(this.northPane, var1);
  289.       this.northPane = var1;
  290.    }
  291.  
  292.    public void setSouthPane(JComponent var1) {
  293.       this.southPane = var1;
  294.    }
  295.  
  296.    public void setWestPane(JComponent var1) {
  297.       this.westPane = var1;
  298.    }
  299.  
  300.    protected void setupMenuCloseKey() {
  301.    }
  302.  
  303.    protected void setupMenuOpenKey() {
  304.       this.frame.registerKeyboardAction(new 1(this), this.openMenuKey, 2);
  305.       this.frame.getDesktopIcon().registerKeyboardAction(new 2(this), this.openMenuKey, 2);
  306.    }
  307.  
  308.    protected void uninstallComponents() {
  309.    }
  310.  
  311.    protected void uninstallDefaults() {
  312.       Icon var1 = this.frame.getFrameIcon();
  313.       if (var1 instanceof UIResource) {
  314.          this.frame.setFrameIcon((Icon)null);
  315.       }
  316.  
  317.       LookAndFeel.uninstallBorder(this.frame);
  318.    }
  319.  
  320.    protected void uninstallKeyboardActions() {
  321.       if (this.internalFrameListener != null) {
  322.          this.frame.removeInternalFrameListener(this.internalFrameListener);
  323.       }
  324.  
  325.       if (this.isKeyBindingRegistered()) {
  326.          this.frame.unregisterKeyboardAction(this.openMenuKey);
  327.          this.frame.getDesktopIcon().unregisterKeyboardAction(this.openMenuKey);
  328.       }
  329.  
  330.    }
  331.  
  332.    protected void uninstallListeners() {
  333.       this.deinstallMouseHandlers(this.frame);
  334.       this.frame.removePropertyChangeListener(this.propertyChangeListener);
  335.       this.frame.setLayout((LayoutManager)null);
  336.       this.internalFrameLayout = null;
  337.       this.propertyChangeListener = null;
  338.       this.frame.getGlassPane().removeMouseListener(this.glassPaneDispatcher);
  339.       this.frame.getGlassPane().removeMouseMotionListener(this.glassPaneDispatcher);
  340.       if (this.frame.getDesktopPane() != null && this.componentListenerAdded) {
  341.          this.frame.getDesktopPane().removeComponentListener(this.componentListener);
  342.       }
  343.  
  344.       this.glassPaneDispatcher = null;
  345.       this.componentListener = null;
  346.       this.borderListener = null;
  347.    }
  348.  
  349.    public void uninstallUI(JComponent var1) {
  350.       if (var1 != this.frame) {
  351.          throw new IllegalComponentStateException(String.valueOf(this) + " was asked to deinstall() " + var1 + " when it only knows about " + this.frame + ".");
  352.       } else {
  353.          this.uninstallDefaults();
  354.          this.uninstallComponents();
  355.          this.frame.setCursor(Cursor.getPredefinedCursor(0));
  356.          this.setNorthPane((JComponent)null);
  357.          this.setSouthPane((JComponent)null);
  358.          this.setEastPane((JComponent)null);
  359.          this.setWestPane((JComponent)null);
  360.          this.uninstallListeners();
  361.          this.uninstallKeyboardActions();
  362.          this.frame.remove(this.frame.getRootPane());
  363.          this.frame = null;
  364.       }
  365.    }
  366. }
  367.